1. Field of the Invention
The present invention relates to a robotic teleportation method and to a teleportation system for autonomous robotic agents.
In present practice, a robot has a physical architecture (body, sensors, actuators) and a control program executed on a computer or special-purpose electronic device that gives the robot its functional capabilities. The robot is called autonomous if it executes these control programs without human intervention and if it adapts its control programs to be maximally adapted to its environment and tasks. The control program is generally associated with a specific physical body, particularly if the control program has been specialized by adaptation, learning mechanisms or other means to individualize the robot.
2. Technical Background
There are several related concepts and mechanisms which act as background to the present invention.
There has been significant work in the area of tele-operated robots, where a human can control a robot from a distance. In this case, the sensory states of the robot are extracted and sent through a data transmission system to another physical location for interpretation by a human operator. The human operator then sends control commands to the robot attain through a data transmission network. Teleoperation requires a robotic architecture in which sensory and actuator states are made accessible to outside processes. In the case of teleoperation, the robot is not autonomous because it remains under human control. Accordingly, in teleoperated robots, the control program is not executed by the robot itself on local computational resources without human intervention.
Another relevant area with a significant state of the art is that of net-mobile programs. These are computer programs that can be transferred between host devices across a network, and then executed on a local device. A Java applet, for example, is a portable computer program that executes in a host device (typically a Web browser). However, a net-mobile program such as a Java applet that implements a button or an image map is not autonomous; it is down-loaded on demand, responds to user actions, and is then purged from memory when the user moves on. Moreover, a net-mobile program is not persistent, i.e. the net-mobile program does not have a definite lifetime which lasts more than a single invocation and in the case of mobile programs, there is no need to adjust their internal states.
A third relevant area of prior work is concerned with software agents. Software agents are systems that exhibit autonomy and persistence and thus capture some of the properties of teleportable agents. Various proposals have been made for software agents and various experiments have been carried out.
There are two significant differences here. First, mobility is not a necessary characteristic of software agents. Many software agents are not transferred between host devices at all. Others may exhibit what we call pseudo-mobility they make use of data drawn from remote sources, but are not themselves transferred. The  less than  less than spiders greater than  greater than  or  less than  less than crawlers greater than  greater than  used to index the World Wide Web are examples of pseudo-mobile programs; they make use of remote data, but despite their namexe2x80x94with its suggestion of movementxe2x80x94transfer from one host to another prior to execution plays no part in their normal way of operating. A smaller number of agents may be truly mobile but it is clear that mobility is not an inherent part of the definition of a software agent.
The second, and much more important distinction, is that software agents are typically not grounded. They operate within an information space which is defined by stored data, not by data derived in real time from sensors or actuators.
The present invention aims at dissociating the functional capabilities and thus the behavioral identity of the robot from its physical embodiment in such a way that it can be sent over a data transmission network such as the Internet and downloaded (materialized) or extracted (dematerialized) in different robotic bodies. Such a capability is called agent teleportation. The behavioral identity of a robot is called the agent, and the physical installation in which an agent can be embodied is called the robot body. A teleportable robotic agent is an agent which can be embodied into a robot body as well as travel over a data transmission network.
Robotic teleportation has a wide range of possible applications. Physical robot bodies linked through the Internet are expected to become common place in the future, and individuals will own agents which can operate these robotic structures but are not tied to a single physical robot. Such agents can do tasks in the physical world or interact with other embodied agents in many different physical locations without the need to travel physically from one location to the next.
For example.  less than  less than pet robots greater than  greater than  which have the capacity for autonomous movement and basic sound and vision acquisition devices (such as the dog-shaped miniature Aibo robot, made by Sony Corporation) are increasingly coming to tile market. Based on the invention described in this application, such small mobile robots could connect intermittently to a network in order to download agents which act as control programs for the robot. Under direction from the controlling agent, the robot explores its immediate surroundings. The image and sound data that it captures are used to allow the agent to  less than  less than learn greater than  greater than  (e.g. by constructing maps of the world, or learningxe2x80x94in interaction with other robots or human usersxe2x80x94names for identifiable objects like faces in the world). The robot can then connect to a network access port and upload the agent and its newly-acquired knowledge about the world. This opens possibilities for backup, maintenance, monitoring, and upgrading of agents without the need for users to manually save or restore agents or install new software. Moreover owners of pet robots could exchange agents or parts of agents, or individuals could have agents interact in other locations thus increasing the entertainment potential of pet robots.
Another application is in speech. A speech system can be seen as an agent that controls a synthesizer and perceives human speech through a microphone. In contrast to much of current technology, we expect future speech agents to continuously adapt and specialize to the human speech in their environment. This means that their internal states change to record new words, new pronunciations, etc. By the invention described in the present application it is possible for individuals to own a speech agent which is highly adapted to their speech or to the speech of people that the individuals have to interact with. Such a speech agent can install itself on any machine that has the appropriate hardware in a location where its user is physically located. It is also possible for speech agents that have been in other environments to install themselves somewhere where their expertise is most needed and act as transcribers.
Briefly, the present invention applies to grounded mobile agents and differs from teleoperation in that the agent is autonomous, pursuing its defined goals independently of a human operator. Thus, according to the present invention, the control program is executed by the robot itself on local computational resources without human intervention.
The agents according to the invention differ from standard net-mobile programs in that they are also persistent. Their internal state and structure is maintained between invocations. Thus an assent has a definite lifetime which lasts more than a single invocation of the agent. Moreover, autonomous agents must be able to adjust their own representations and internal states as they learn through a series of successive interactions.
The agents according to the invention further differ from conventional software agents in that they are necessarily mobile and necessarily grounded. Thus, the agents are embodied in the real world and have to control and perceive the world through physical devices. Because these agents have to handle the stochasticity inherent in real world environments, it will never be possible to fully program them and have them in a static state. Rather, they necessarily adapt and specialize to deal with certain types of environments. These defining characteristics impose specific requirements on a supporting system.
More specifically the aims of the present invention are obtained by a method for converting a first system consisting of a physical architecture and interlinked hardware and software components and defining a server system into at least a second system consisting of a physical architecture and interlinked hardware and software components and defining a client system, each of the first and second systems comprising at least an agent defining functional capabilities constituting the behavioral identity of a robot and a robot body constituted by the physical installation in which agent can be embodied, characterized in that the conversion between the first and second systems is achieved by agent teleportation through a data transmission network, each agent being represented by an isolable agent state comprising a collection of information which is subject to change during the operation of a system of which it is part, which has a significant controlling influence on the operation of that system and which may be isolated and distinguished from permanent parts of the system which constitute a supporting device, wherein during the conversion of the first system into the at least second system each agent is temporarily converted into a serialized representation that can be transmitted over the data transmission network, the downloading of an agent requested by the client system to the server system is achieved using a stateless request/response protocol and a pair of message tokens and the uploading of an agent present to the client system to be sent to the server system is also achieved using a stateless request/response protocol and a pair of message tokens.
According to a specific embodiment, the stateless request/response communication protocol used for downloading or uploading an agent is an HTTP protocol.
According to an aspect of tile present invention the downloading of an agent requested by the client comprises the following steps
a) providing in the server system a queue of waiting agents to be delivered to the client system,
b) having the client system transmit a GET-NEXT-AGENT request to the server system,
c) having, a first waiting agent to be sent to the client system as a response to the GET-NEXT-AGENT request transmitted by the client system,
d) checking whether the first waiting agent is already present in the client system and ignoring this agent if the answer is yes,
e) installing in the client system the first waiting agent if this agent is not yet present and sending an AGENT-PRESENT signal to the server system to indicate that the agent has been received wherein the received assent is removed from the queue upon receipt of the AGENT-PRESENT signal by the server system.
t) repeating the steps b) to e) for having all the requested subsequent waiting agents sent from the server system to the client system until the server system emits a  less than  less than no-more-agents greater than  greater than  token.
According to another aspect of the present invention, the uploading of an agent present in the client system comprises the following steps
a) providing in the client system a queue of waiting agents to be delivered to the client system,
b) having the client system transmit an IS-AGENT-PRESENT request to the server system for the first waiting agent,
c) having the first waiting agent deleted from the queue in the client system if the answer from tile server system to the IS-AGENT-PRESENT request is  less than  less than yes greater than  greater than ,
d) having the first waiting agent sent to the server system with an UPLOAD-AGENT signal and deleted from the queue in the client system if the answer from the server system to the IS-AGENT-PRESENT request is  less than  less than no greater than  greater than ,
e) repeating the steps b) to d) for each next first waiting agent in the client system until all waiting agents are deleted from the queue of waiting agents in the client system.
According to a possible application, a server system co-operates with a plurality of client systems.
In a specific embodiment, the server system is a passive system which merely responds to messages sent by the client systems without initiating a connection.
The present invention also relates to an autonomous system comprising at least an agent defining functional capabilities constituting the behavioral identity of a robot and a supporting device constituted by the physical installation in which an agent can be embodied, characterized in that the supporting device comprises hardware components, software components concerned with the general operation of the hardware components of the device, software components concerned with maintenance of the agent environment and those parts of the agent implementation that do not change and software components concerned with reading, and writing an isolable agent state which is subject to change during the operation of the system of which it is part, which has a significant controlling influence on the operation of that system and which may be isolated and distinguished from permanent parts of the supporting device, the autonomous system further comprising extraction means for extracting the state of the isolable agent state and transform it into a representation which can be transmitted across a network and inserting means for inserting a received transmitted state into the supporting device in such a way as to embody the received agent on that supporting device.
More specifically, tile agent state contains data that can be used in calculations performed by code defined in the core agent implementation as well as code and data representing the configuration of the hardware substrate.
According to a specific embodiment extractor means comprise means for reading parts of the supporting device""s memory in which key elements of the agent state are defined and means for converting the data found therein into a text or binary stream suitable for transmission.
According to another aspect, the inserting means comprises means for interpreting the transmitted data received and means for updating the memory of the target supporting device in such a way as to embody the agent on that device.
The autonomous system according to the invention may constitute either a server system co-operating with at least one client system or a client system co-operating with at least one server system.